package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.ItemProovedorBean;
import Beans.ProovedorBean;
import DAO.HibernateItemProovedorDAO;
import DTO.ItemProovedorDTO;
import Model.ItemProovedor;
import Model.Proovedor;



public class AdministradorItemProveedor {
private static AdministradorItemProveedor instancia;
	
	private AdministradorItemProveedor(){
		
	}
	
	public static AdministradorItemProveedor getInstancia(){
		if(instancia==null){
			instancia=new AdministradorItemProveedor();
		}
		return instancia;
	}

	public List<ItemProovedorBean> fromModelToBean(List<ItemProovedor> itemProveedors) {
		List<ItemProovedorBean> itemProveedorsBean=new ArrayList<ItemProovedorBean>();
		for (ItemProovedor itemProveedor : itemProveedors) {
			itemProveedorsBean.add(fromModelTOBean(itemProveedor));
		}
		return itemProveedorsBean;
	}

	public ItemProovedorBean fromModelTOBean(ItemProovedor itemProveedor) {
		ItemProovedorBean itemProveedorBean=null;
		if(itemProveedor!=null){
		itemProveedorBean=new ItemProovedorBean();
		itemProveedorBean.setIdItemProovedor(itemProveedor.getId());
		itemProveedorBean.setPrecio(itemProveedor.getPrecio());
		itemProveedorBean.setProovedor(AdministradorProovedor.getInstancia().fromModelTOBean(itemProveedor.getProovedor()));
		}
		return itemProveedorBean;
	}

	public List<ItemProovedor> fromDTOTOModel(List<ItemProovedorDTO> itemProveedorsDTO) {
		List<ItemProovedor> itemProveedors=new ArrayList<ItemProovedor>();
		for (ItemProovedorDTO itemProveedorDTO : itemProveedorsDTO) {
			itemProveedors.add(fromDTOTOModel(itemProveedorDTO));
		}
		return itemProveedors;
	}
	public ItemProovedor fromDTOTOModel(ItemProovedorDTO itemProveedorDTO) {
		ItemProovedor itemProveedor=null;
		if(itemProveedorDTO!=null){
		itemProveedor=new ItemProovedor();
		itemProveedor.setId(itemProveedorDTO.getId());
		itemProveedor.setPrecio(itemProveedorDTO.getPrecio());
		itemProveedor.setProovedor(AdministradorProovedor.getInstancia().fromDTOTOModel(itemProveedorDTO.getProovedor()));
		
		}
		return itemProveedor;
	}
	
	public List<ItemProovedorDTO> fromModelTODTO(List<ItemProovedor> itemProveedors) {
		List<ItemProovedorDTO> itemProveedorsDTO=new ArrayList<ItemProovedorDTO>();
		for (ItemProovedor itemProveedor : itemProveedors) {
			itemProveedorsDTO.add(fromModelTODTO(itemProveedor));
		}
		return itemProveedorsDTO;
	}
	public ItemProovedorDTO fromModelTODTO(ItemProovedor itemProveedor) {
		ItemProovedorDTO itemProveedorDTO=null;
		if(itemProveedor!=null){
			itemProveedorDTO=new ItemProovedorDTO();
			itemProveedorDTO.setId(itemProveedor.getId());
			itemProveedorDTO.setPrecio(itemProveedor.getPrecio());
			itemProveedorDTO.setProovedor(AdministradorProovedor.getInstancia().fromModelTODTO(itemProveedor.getProovedor()));
		
		}
		return itemProveedorDTO;
	}

	public List<ItemProovedor> fromBeanTOModel(List<ItemProovedorBean> itemProveedorsBean) {
		List<ItemProovedor> itemProveedors=new ArrayList<ItemProovedor>();
		for (ItemProovedorBean itemProveedorBean : itemProveedorsBean) {
			itemProveedors.add(fromBeanTOModel(itemProveedorBean));
		}
		return itemProveedors;
	}

	public ItemProovedor fromBeanTOModel(ItemProovedorBean itemProveedorBean) {
		ItemProovedor itemProveedor=null;
		if(itemProveedorBean!=null){
			itemProveedor=new ItemProovedor();
			itemProveedor.setId(itemProveedorBean.getIdItemProovedor());
			itemProveedor.setPrecio(itemProveedorBean.getPrecio());
			itemProveedor.setProovedor(AdministradorProovedor.getInstancia().fromBeanTOModel(itemProveedorBean.getProovedor()));
		}
		return itemProveedor;
	}

	public void grabarItemProovedor(ItemProovedor itemProveedor) {
		ItemProovedorBean fb=fromModelTOBean(itemProveedor);
		HibernateItemProovedorDAO.getInstancia().grabarItemProovedor(fb);
		
	}
	
	public ItemProovedor buscarItemProovedor(ItemProovedor f){
		ItemProovedorBean fb=fromModelTOBean(f);
		fb=HibernateItemProovedorDAO.getInstancia().buscarItemProovedor(fb);
		return fromBeanTOModel(fb);
	}

	public List<ItemProovedorBean> fromModelTOBean(List<ItemProovedor> items) {
		List<ItemProovedorBean> itemsbean=new ArrayList<ItemProovedorBean>();
		for (ItemProovedor itemProovedor : items) {
			ItemProovedorBean itemb=fromModelTOBean(itemProovedor);
			itemsbean.add(itemb);
		}
		return itemsbean;
	}

}
